import threading
import time
from datetime import datetime

def continuous_task(task_name):
    """持续执行的任务"""
    while getattr(threading.current_thread(), "do_run", True):
        print(f"[{datetime.now().strftime('%H:%M:%S')}] {task_name} 正在执行...")
        time.sleep(1)  # 模拟工作

def start_with_timer():
    """立即启动线程，5秒后停止"""
    print("立即启动线程，5秒后自动停止...")
    
    # 创建并启动工作线程
    worker_thread = threading.Thread(target=continuous_task, args=("工作线程",))
    worker_thread.do_run = True  # 设置运行标志
    worker_thread.start()
    
    # 创建停止定时器
    def stop_worker():
        print(f"[{datetime.now().strftime('%H:%M:%S')}] 定时器触发，停止工作线程...")
        worker_thread.do_run = False
        worker_thread.join(timeout=2.0)  # 等待线程结束
        print("工作线程已停止")
    
    # 5秒后执行停止
    stop_timer = threading.Timer(5.0, stop_worker)
    stop_timer.start()
    
    return worker_thread, stop_timer

# 使用示例
worker, timer = start_with_timer()

# 主线程可以继续做其他事情
print("主线程继续执行...")
time.sleep(10)  # 等待整个过程完成